package com.yuanqi.service;

import com.yuanqi.domain.OrderPayment;
import com.yuanqi.domain.PaymentApplicationRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface OrderPaymentService {
    
    Page<OrderPayment> getOrderPayments(Pageable pageable, String orderType, String orderNumber, String paymentStatus);
    
    OrderPayment getOrderPaymentById(Integer id);
    
    OrderPayment getOrderPaymentByOrderNumber(String orderNumber);
    
    Map<String, Object> applyPayment(PaymentApplicationRequest request);
    
    Map<String, Object> createOrder(Map<String, Object> orderData);
    
    Map<String, Object> getOrderPaymentStats();
    
    List<OrderPayment> getOrderPaymentsByConditions(String orderType, String orderNumber, String paymentStatus);
    
    Map<String, Object> approvePayment(Integer orderId, String approver, String approveRemark);
    
    Map<String, Object> rejectPayment(Integer orderId, String rejector, String rejectRemark);
}
